-- $Id$
-- $Source$
-- *****************************************************************
-- Definitions of the managed objects that describe a number of
-- core tables contributing to the DSL CPE provisioning information
-- base.
--
-- March 2000, Patrick Gili
--
-- Copyright (c) 2001 by Cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
-- $Log$
-- *****************************************************************
-- $Endlog$

--%DNP% ENG-59600

CISCO-DSL-CPE-PROV-MIB DEFINITIONS ::= BEGIN

IMPORTS
    Integer32,
    Counter32,
    IpAddress,
    MODULE-IDENTITY,
    NOTIFICATION-TYPE,
    OBJECT-IDENTITY,
    OBJECT-TYPE                         FROM SNMPv2-SMI
    AutonomousType,
    DateAndTime,
    DisplayString,
    RowStatus,
    TestAndIncr,
    TimeInterval,
    TruthValue,
    TEXTUAL-CONVENTION                  FROM SNMPv2-TC
    MODULE-COMPLIANCE,
    NOTIFICATION-GROUP,
    OBJECT-GROUP                        FROM SNMPv2-CONF
    ciscoCibProvGroup                   FROM CISCO-SMI
    PhysicalIndex                       FROM ENTITY-MIB
    InterfaceIndex,
    InterfaceIndexOrZero                FROM IF-MIB
    IANAifType                          FROM IANAifType-MIB
    SnmpAdminString,
    SnmpEngineID                        FROM SNMP-FRAMEWORK-MIB
    ;

ciscoDslCpeProvMIB MODULE-IDENTITY
    LAST-UPDATED   "200011012246Z" -- November 1, 2000 05:46 PM
    ORGANIZATION   "Cisco Systems, Inc."
    CONTACT-INFO   "Cisco System
                    Customer Service

                    Postal: 170 W Tasman Drive
                    San Jose, CA 95134

                    Tel: +1 800 555-NETS

                    E-mail: cs-xdsl@cisco.com"
    DESCRIPTION
        "This MIB module defines the managed objects that support CIB
        management and describe DSL CPEs.
        
        *** ABBREVIATIONS, ACRONYMS, AND SYMBOLS ***
        
        CIB - Provisioning Information Base
        
        CPE - Customer Premise Equipment
        
        DSL - Digital Subscriber Loop

        DSLAM - Digital Subscriber Loop Access Multiplexor
        
        MMI - Modem Management Interface
        
        *** DEFINITIONS ***
        
        DSL CPE
            A device that internetworks a customer premise network
            with a DSL provider's network.
        
        MODEM MANAGEMENT INTERFACE
            An interface between the proxy element function and DSL
            CPEs that provides a network management framework for the
            management of DSL CPEs.  In concept, this interface is
            similar to the ILMI (Integrated Local Management Interface)
            defined by the ATM Forum (af-ilmi-0065.000).  Like the ILMI,
            it consists of an AAL5 transport mapping for SNMP messages,
            a collection of MIB modules, and elements of procedure
            defining the behavior of the interface.
                
        CONFIGURATION INFORMATION BASE
            A set of managed objects that describe the configurations
            for the DSL CPEs served by a proxy element.
            
            The proxy element function only supports access to the CIB
            through two locally available contexts:
            
            1)  'pef' -- used by SNMP entities managing the CIB.
            
            2)  'mmi' -- used by DSL CPEs through the MMI.
            
            The proxy element function configures the view-based access
            control subsystem such that SNMP entities accessing the CIB
            through the 'pef' context have read-write access to the 
            objects contained by the CIB, with exceptions noted by
            the description of managed objects defined by this MIB
            module.
            
            The proxy element function configures the view-based access
            control subsystem such that SNMP entities accessing the CIB
            through the 'mmi' context have read access to the objects
            contained by the CIB, with exceptions noted by the the
            description of managed objects defined by this MIB module.
            In addition, this view specifies read access to the
            atmTrafficDescrParamTable (defined by the ATM-MIB) and the
            atmTrafficDescrParamExtTable (defined by the
            CISCO-ATM-TRAFFIC-MIB).
            
            A proxy element function supports three views into the CIB:
            
            1)  Working View -- this view uses the access policy defined
                by the proxy element function for SNMP entities
                accessing the CIB through the 'pef' context.  This view
                is unique to the owner of the CIB (i.e. the SNMP entity
                that has acquired exclusive write access to the CIB).
                Only the owner of the CIB can see changes that it makes,
                until it releases ownership.
                
            2)  Managed View -- this view uses the access policy defined
                by the proxy element function for SNMP entities
                accessing the CIB through the 'pef' context.  However,
                an SNMP entity can not actually write the CIB until it
                acquires exclusive write access to the CIB.  Changes
                made to the CIB can not be seen through this view until
                the SNMP entity making changes has released ownership of
                the CIB.
                
            3)  Committed View -- this view uses the access policy
                defined by the proxy element function for SNMP entities
                access the CIB through the 'mmi' context.  Changes made
                to the CIB can not be seen through this view until the
                following criteria have been satisified:
                
                a - no SNMP entity owns the CIB (i.e., has acquired
                    exclusive write access to the CIB).
                    
                b - no CPE is retrieving configuration information
                    using the MMI automatic configuration procedure
                    or MMI dynamic configuration procedure.
            
        PROXY ELEMENT
            A host of the proxy element function.
            
        PROXY ELEMENT FUNCTION
            A subsystem consisting of the MMI and a SNMP proxy forwarder
            application.  This subsystem enables massively scalable 
            management of the DSL CPEs attached to a provider's network.
        "
    REVISION      "200011012246Z" -- November 1, 2000 05:46 PM
    DESCRIPTION
        "Initial revision of this MIB module."
    ::= { ciscoCibProvGroup 1 }

-- Textual Conventions

ChangeSet ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "Faciliates dynamic change management of DSL CPE configuration
        information.  A change set consists of an OCTET STRING having a
        length of '(n+7)/8' octets, where 'n' represents the nominator
        of the last column in a table.  Each octet represents a set of
        eight columns in a table, with the first octet representing
        columns 1-8, the second octet representing columns 9-16, and so
        forth. With each octet, the most significant bit represents the
        column with the smaller nominator, and the least significant
        bit represents the column with the larger nominator.
        
        Each bit in the octet string represents a column in a table.
        If the value of this bit is '0', then we consider the object
        in the corresponding column to be discluded in the change set.
        Likewise, if the value of this bit is '1', then we consider
        the object in the corresponding column to be included in the
        change set.
        
        The proxy element function automatically maintains the change
        set maintained for each conceptual row contained by every table
        comprising the CIB:
        
        - It sets a bit in a change set contained by a conceptual row
          when an SNMP entity modifies the instance of an object
          contained by the conceptual row.  The changes (i.e., setting
          bits in change sets) can not be seen in the 'mmi' context
          until the proxy element function commits them to the committed
          view of the CIB.
          
        - It clears any bits in change sets that it previously modified
          when a SNMP entity acquires exclusive write access to the CIB
          following the proxy element function committing changes from
          the managed view to the committed view of the CIB.
        "
    SYNTAX OCTET STRING (SIZE (1..8192))

PhysicalIndexOrZero ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This textual convention serves as an extension of the 
        PhysicalIndex convention defined by the ENTITY-MIB.  The
        PhysicalIndex convetion defines an arbitrary value which
        uniquely integer value greater than '0' that identifies
        a physical entity.  This extension permits the use of the
        value '0', which is object-specific and must therefore be
        defined as part of the description of any object that that
        uses this syntax.  Examples of the usage of '0' might
        include situation where the physical entity is not known."
    REFERENCE
        "A. Bierman and K. McCloghrie, 'Entity MIB using SMIv2',
        RFC 2037, October 1996."
    SYNTAX INTEGER (0..2147483647)

TimerValue ::= TEXTUAL-CONVENTION
    DISPLAY-HINT    "1a2d-1d-1d,1d:1d:1d.1d,1a1d:1d"
    STATUS          current
    DESCRIPTION
        "Specifies a timer value that can represent represent an
        absolute or relative time.
        
        field  octets  contents                     range
        -----  ------  --------                     -----
          1       1    absolute/relative indicator  0 / '+'
          2      2-3   year                         0..65536
          3       4    month                        0..12
          4       5    day                          0..255
          5       6    hour                         0..23
          6       7    minutes                      0..59
          7       8    seconds                      0..60
          8       9    centi-seconds                0..99
          9      10    timezone: direction from GMT '+' / '-'
         10      11    timezone: hours from GMT     0..13
         11      12    timezone: minutes from GMT   0..59

        Notes:
        
        (1) The value of field 2 is in network-byte order.

        (2) The value '60' specified by field 7 defines the
            leap-second.

        (3) Daylight saving time in New Zealand is +13.
        
        An absolute timer value specifies a date and time when a timer
        expires.  An absolute timer value is similar in format to the
        DateAndTime textual convention defined by SNMPv2-TC MIB module.
        The following rules apply to an absolute timer value:
        
        1)  Field 1 must be '0'.
        
        2)  Field 2 uses network-byte order.
        
        3)  Field 3 must have a value in the range 1-12.
        
        4)  Field 4 must have a value in the range 1-31.
        
        5)  Field 7 can use the value '60' to specify a leap-second.
        
        6)  Daylight saving time in New Zealand is +13.
        
        7)  If fields 9-11 do not exist, then the value specifies local
            time.
           
        In addition, an absolute timer value can specify the next 
        occurence of a time.  This requires that all leading fields
        specify the value '0'. For example, consider a provider that
        wants DSL CPEs to be notified of configuration changes every
        night at 3:00 AM.  This can be expressed by the timer value
        '0-0-0,3:0:0.0'.  Consider a provider wants DSL CPEs to be 
        notified of configuration changes at 1:30 AM on the 3rd of
        every month.  This can be expressed by the timer value
        '0-0-3,1:30:0.0'.
        
        A relative timer value specifies an interval of time before
        a timer expires.  The following rules apply to a relative timer
        value:
        
        1)  Field 1 must be '+'.
        
        2)  Field 2 must be '0'.
        
        3)  Field 3 must be '0'.
        
        4)  Fields 9-11 must not be present.
        
        For example, consider a provider that wants DSL CPEs to be
        notified of configuration changes 1 day, 14 hours, and 45
        minutes after the committing the changes.  This can be
        expressed by the timer value '+0-0-1,14:45:0.0'."
    SYNTAX OCTET STRING (SIZE (9..12))

-- MIB Object Definitions

ciscoDslCpeProvMIBObjects OBJECT IDENTIFIER
    ::= { ciscoDslCpeProvMIB 1 }

cdcpManagerGroup OBJECT IDENTIFIER
    ::= { ciscoDslCpeProvMIBObjects 1 }
    
cdcpEntityGroup OBJECT IDENTIFIER
    ::= { ciscoDslCpeProvMIBObjects 2 }
    
cdcpEntityConfProfileGroup OBJECT IDENTIFIER
    ::= { ciscoDslCpeProvMIBObjects 3 }
    
cdcpIfGroup OBJECT IDENTIFIER
    ::= { ciscoDslCpeProvMIBObjects 4 }

cdcpIdGroup OBJECT IDENTIFIER
    ::= { ciscoDslCpeProvMIBObjects 5 }

cdcpNoVendorTypeCheck OBJECT-IDENTITY
    STATUS     current
    DESCRIPTION
            "A value used for null identifiers."
    ::= { 0 0 }

-- Manager Group

cdcpPefSupported OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies whether the host supports the proxy 
        element function.  If it doesn't, then the SNMP entity
        responds with an error-status of 'noSuchObject'."
    ::= { cdcpManagerGroup 1 }

cdcpPefNotificationsEnabled OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object indicates whether the proxy element function
        originates northbound notification messagse."
    ::= { cdcpManagerGroup 2 }

cdcpCibSpinLock OBJECT-TYPE
    SYNTAX      TestAndIncr
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object facilitates acquisition of exclusive write-access
        to the CIB in the environments containing more than one SNMP
        entity supporting a SNMP command generator application (i.e.,
        a manager)."
    ::= { cdcpManagerGroup 3 }

cdcpCibOwner OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0..32))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object specifies the usmUserName assigned to the manager
        that currently has exclusive write-access to the CIB.  If this
        value is the null string, then exclusive write-access to the
        CIB is free to be acquired.
        
        A manager uses the following procedure for acquiring write-
        access to the CIB:
        
        1)  Retrieve the value of cdcpCibSpinLock and cdcpCibOwner.
        
        2)  If the value of cdcpCibOwner is not the null string, then
            go to step 1.
            
        3)  Attempt to set the value of cdcpCibSpinLock to the
            previously retrieved value, and the value of cdcpCibOwner
            to the usmUserName assigned to of the SNMP entity supporting
            this SNMP command generator application.  If the attempt
            fails, then go to step 1.
            
        A DSL CPE can not see the modifications made to the CIB by a
        manager until the manager releases exclusive write-access to the
        CIB."
    ::= { cdcpManagerGroup 4 }

cdcpCibTimeout OBJECT-TYPE
    SYNTAX      TimeInterval
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object specifies the time interval the proxy element
        function will allow to elapse without receiving an SNMP message
        from a manager that has acquired exclusive write-access.  After
        this time interval has elapsed, the proxy element function frees
        ownership of the CIB and discards all changes made to the CIB
        by this manager since it acquired exclusive write-access."
    ::= { cdcpManagerGroup 5 }

cdcpCibChanges OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies the number of times the content of the
        CIB has changed.  The proxy element function increments the
        value of this object when a manager releases write-access to
        the CIB."
    ::= { cdcpManagerGroup 6 }

-- Entity Group

cdcpEntityIndexNext OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies an appropriate value to be used for
        cdcpEntityIndex when creating a conceptual row in the
        cdcpEntityTable.  The value '0' indicates that no unassigned
        conceptual rows are available.  To obtain a cdcpEntityIndex
        value, the manager issues a SNMP Get request.  The local SNMP
        entity has the responsibility of modifying the value of this
        object following each successful SNMP Get request."
    ::= { cdcpEntityGroup 1 }

cdcpEntityTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CdcpEntityEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table lists the DSL CPEs served by the proxy element.
        This table is a pure base table in the CIB."
    ::= { cdcpEntityGroup 2 }

cdcpEntityEntry OBJECT-TYPE
    SYNTAX      CdcpEntityEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A description of a DSL CPE served by the proxy element."
    INDEX       { cdcpEntityIndex }
    ::= { cdcpEntityTable 1 }

CdcpEntityEntry ::= SEQUENCE {
    cdcpEntityIndex                 Integer32,
    cdcpEntityRowStatus             RowStatus,
    cdcpEntityChangeSet             ChangeSet,
    cdcpEntityCreator               INTEGER,
    cdcpEntityPhysicalIndex         PhysicalIndex,
    cdcpEntityPortPhysicalIndex     PhysicalIndexOrZero,
    cdcpEntityTarget                SnmpAdminString,
    cdcpEntityContextEngineID       SnmpEngineID,
    cdcpEntityContextName           SnmpAdminString,
    cdcpEntityMmiEnable             TruthValue,
    cdcpEntityMmiConfChangeNotify   INTEGER,
    cdcpEntityMmiConfChangeTime     TimerValue,
    cdcpEntityMmiConfChangeReboot   INTEGER,
    cdcpEntityMmiTimeout            TimeInterval,
    cdcpEntityMmiConfChanged        TruthValue,
    cdcpEntityMmiConfTimeStamp      DateAndTime,
    cdcpEntityMmiState              INTEGER,
    cdcpEntityMmiStatus             BITS,
    cdcpEntityAssetVendorType       AutonomousType,
    cdcpEntityAssetSerialNumber     SnmpAdminString,
    cdcpEntityFqdn                  DisplayString,
    cdcpEntityConfProfile           SnmpAdminString
}

cdcpEntityIndex OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object specifies an arbitrary non-zero integer value that
        uniquely identifies this entity."
    ::= { cdcpEntityEntry 1 }

cdcpEntityRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the row-status for a conceptual row in
        this table.
        
        A manager can create a conceptual row in this table by setting
        the value of this object to 'createAndWait'.  The proxy element
        function does not support the 'createAndGo' method for
        conceptual row creation.
        
        A manager can delete a conceptual row in this table by setting
        the value of this object to 'destroy'.
        
        A manager must set the value of this object to 'notInService'
        in order to modify the value of object in a conceptual row in
        this table, except when noted by the description of an object.
        
        A manager must activate the conceptual row (i.e., set the value
        of the row-status to 'active') in order for the proxy element
        function to commit changes (i.e., creation or modifications) to
        the committed view of the CIB when the manager releases
        exclusive write-access to the CIB."
    ::= { cdcpEntityEntry 2 }

cdcpEntityChangeSet OBJECT-TYPE
    SYNTAX      ChangeSet
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies the change set for this conceptual row."
    ::= { cdcpEntityEntry 3 }

cdcpEntityCreator OBJECT-TYPE
    SYNTAX      INTEGER {
        local(1),   -- Automatically discovered entity.
        manager(2)  -- Manually created entity.
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies the SNMP entity that created this
        conceptual row:
        
        'local'
            Specifies that the proxy element function automatically
            discovered the entity and created this conceptual row
            to represent it.  A proxy element function can only 
            automatically discover entities representing DSL CPEs
            directly connected to the host (i.e., the host of the
            proxy element function is a DSLAM).
            
        'manager'
            Specifies that a manager manually created this conceptual
            row to represent a DSL CPE that is not directly attached
            to the host."
    ::= { cdcpEntityEntry 4 }

cdcpEntityPhysicalIndex OBJECT-TYPE
    SYNTAX      PhysicalIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The index assigned to the physical entity created by the proxy
        element function to represent this DSL CPE; that is, the value
        of the entPhysicalIndex object contained by the conceptual row
        in the entPhysicalTable representing this DSL CPE (see the 
        ENTITY-MIB for more details)."
    REFERENCE
        "A. Bierman and K. McCloghrie, 'Entity MIB using SMIv2',
        RFC 2037, October 1996."
    ::= { cdcpEntityEntry 5 }

cdcpEntityPortPhysicalIndex OBJECT-TYPE
    SYNTAX      PhysicalIndexOrZero
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The index assigned to the physical entity representing the DSL
        port to which this DSL CPE has a connection; that is, the value
        of the entPhysicalIndex object contained by the conceptual row
        in the entPhysicalTable representing the DSL port to which this
        DSL CPE has a connection (see the ENTITY-MIB for more details).
        
        The proxy element function can not determine the value of this
        object unless it is being hosted by a DSLAM.  In the case that
        the proxy element function is not being hosted by a DSLAM, then
        the value of this object is the null identifier."
    REFERENCE
        "A. Bierman and K. McCloghrie, 'Entity MIB using SMIv2',
        RFC 2037, October 1996."
    ::= { cdcpEntityEntry 6 }

cdcpEntityTarget OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The name of the management target representing this DSL CPE;
        that is, the value of snmpTargetAddrName object contained by
        the conceptual row in the snmpTargetAddrTable representing this
        DSL CPE (see the SNMP-TARGET-MIB for more details)."
    REFERENCE
        "D. Levi, P. Meyer, B. Stewart, 'SNMP Applications', RFC 2573,
        April 1999."
    ::= { cdcpEntityEntry 7 }

cdcpEntityContextEngineID OBJECT-TYPE
    SYNTAX      SnmpEngineID
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of the contextEngineID assigned to this DSL CPE by
        the proxy element function."
    ::= { cdcpEntityEntry 8 }

cdcpEntityContextName OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The value of the contextName assigned to the 'modem context'
        by the proxy element function.  A manager can access status
        and performance data maintained by this DSL CPE through the
        the 'modem context'.  It is the responsibility of the DSL CPE
        to set-up a view for this purpose."
    ::= { cdcpEntityEntry 9 }

cdcpEntityMmiEnable OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object determines if this DSL CPE uses the MMI to retrieve
        its configuration.  If the value of this object is 'false', then
        the DSL CPE must be able to retrieve its configuration from 
        another source, such as a local configuration store.  This
        object should only be used as a transition aid."
    DEFVAL      { true }
    ::= { cdcpEntityEntry 10 }

cdcpEntityMmiConfChangeNotify OBJECT-TYPE
    SYNTAX      INTEGER {
        automatic(1),
        manual(2)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies how the proxy element function signals
        this DSL CPE when changes have been made to the CIB that have
        an effect on its configuration:

        'automatic'
            The proxy element function signals this DSL CPE after the
            configuration change notification timer associated with
            this DSL CPE has expired (see cdcpEntityMmiConfChangeTime
            for further details).

        'manual'
            The proxy element function never signal this DSL CPE.  This
            DSL CPE will only retrieve its most current configuration
            following reboot."
    DEFVAL      { automatic }
    ::= { cdcpEntityEntry 11 }

cdcpEntityMmiConfChangeTime OBJECT-TYPE
    SYNTAX      TimerValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the value of the configuration change
        notification timer.  When a manager releases exclusive write-
        access to the CIB, and the proxy element function determines
        that this DSL CPE's configuration has changed, the proxy
        element function starts a configuration change notification
        timer for this DSL CPE.  When the timer expires, the proxy
        element function sets the value of cdcpEntityMmiConfChanged
        to 'true'.
        
        The default value for this object is a relative timer value
        specifying an interval of time equal to '0'."
    DEFVAL      { '2b0000000000000000'H }
    ::= { cdcpEntityEntry 12 }

cdcpEntityMmiConfChangeReboot OBJECT-TYPE
    SYNTAX      INTEGER {
        automatic(1),
        manual(2)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object determines how this DSL CPE should handle the
        case that it retrieves a configuration that requires reboot
        in order for the configuration to be applied:
        
        'automatic'
            This DSL CPE may automatically reboot when it retrieves
            a configuration that requires it to reboot in order to
            successfully apply the configuration.
        
        'manual'
            This DSL CPE will be reboot manually when it retrieves
            a configuration the requires it to reboot in order to
            successfully apply the configuration."
    DEFVAL      { automatic }
    ::= { cdcpEntityEntry 13 }

cdcpEntityMmiTimeout OBJECT-TYPE
    SYNTAX      TimeInterval
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the time interval the proxy element
        function will allow to elapse without receiving an SNMP
        message from this DSL CPE before assuming that it has lost
        MMI connectivity to this DSL CPE.  This interval should
        be greater than the interval at which this DSL CPE polls
        the value of cdcpEntityMmiConfChanged."
    DEFVAL      { 6000 }
    ::= { cdcpEntityEntry 14 }

cdcpEntityMmiConfChanged OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies when this DSL CPE's configuration has
        changed.  This DSL CPE polls this object to determine when
        changes to retrieve its configuration."
    ::= { cdcpEntityEntry 15 }

cdcpEntityMmiConfTimeStamp OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies a time stamp identifying when the proxy
        element function last signalled a change to its configuration."
    ::= { cdcpEntityEntry 16 }

cdcpEntityMmiState OBJECT-TYPE
    SYNTAX      INTEGER {
        disconnected(1),
        idle(2),
        configuring(3),
        authenFailed(4),
        imageMismatch(5)
    }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the state of the MMI for this DSL CEP:
        
        'disconnected'
            This DSL CPE either has not established MMI connectivity
            with the proxy element, or the proxy element has detected
            the loss of connectivity with this DSL CPE (i.e., the 
            proxy element hasn't received an SNMP message from this
            DSL CPE in the time interval specified by the value of the
            cdcpEntityMmiTimeout object.
        
        'idle'
            This DSL CPE has established MMI connectivity with the proxy
            element.  The DSL CPE is actively polling the proxy element
            for change of configuration notification.
        
        'configuring'
            This DSL CPE is currently performing the MMI automatic 
            configuration procedure or MMI dynamic configuration
            procedure.
        
        'authenFailed'
            This DSL CPE has established MMI connectivity with the proxy
            element.  However, it failed the MMI device authentication
            procedure.  This DSL CPE will remain in this state until
            a manager modifies the device authentication information or
            the proxy element loses MMI connectivity.
        
        'imageMismatch'
            This DSL CPE has established MMI connectivity with the proxy
            element.  However, it failed the MMI image maintenance
            procedure.  This DSL CPE will remain in this state until
            the proxy element has handled the mismatch or the loses
            MMI connectivity.  The proxy element handles an image 
            mismatch by retrieving and downloading the provisioned
            images to this DSL CPE."
    ::= { cdcpEntityEntry 17 }

cdcpEntityMmiStatus OBJECT-TYPE
    SYNTAX      BITS {
        noDefect(0),
        authenFailure(1),
        imageMismatch(2),
        imageRetrievalFailure(3),
        imageDownloadFailure(4),
        configErrorOccurred(5)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies whether any defects have occurred with
        respect to this DSL CPE's MMI:
        
        'noDefect'
            Indicates no defects have occurred with respect to this
            DSL CPE's MMI.
            
        'authenFailure'
            Indicates that this DSL CPE failed the MMI device
            authentication procedure.
        
        'imageMismatch'
            Indicates that this DSL CPE failed the MMI image
            maintenance procedure.
        
        'imageRetrievalFailure'
            Indicates that the proxy element function failed to
            retrieve an image required to resolve an image mismatch
            signaled by this DSL CPE.
        
        'imageDownloadFailure'
            Indicates that the proxy element function failed to
            download an image required to resolve an image mismatch
            signaled by this DSL CPE.
        
        'configErrorOccurred'
            Indicates that this DSL CPE logged at least one error
            the last time it performed the MMI automatic configuration
            procedure or MMI dynamic configuration procedure."
    ::= { cdcpEntityEntry 18 }

cdcpEntityAssetVendorType OBJECT-TYPE
    SYNTAX      AutonomousType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the vendor type (see the ENTITY-MIB for
        further details) that the proxy element function expects to be
        assigned to this DSL CPE.
        
        If this object specifies the null identifier, then this DSL
        CPE will not perform a vendor type check during the MMI device
        authentication procedure.
        
        If the value specified by this object and the vendor type
        assigned to the DSL CPE do not match, then this DSL CPE can
        not pass the MMI device authentication procedure.
        
        The provider can use this object to prevent the use of 'foreign'
        equipment in their network."
    REFERENCE
        "A. Bierman and K. McCloghrie, 'Entity MIB using SMIv2',
        RFC 2037, October 1996."
    DEFVAL      { cdcpNoVendorTypeCheck }
    ::= { cdcpEntityEntry 19 }

cdcpEntityAssetSerialNumber OBJECT-TYPE
    SYNTAX      SnmpAdminString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the serial number that the proxy element
        function expects to be assigned to this DSL CPE.
        
        If this object specifies the null string, then this DSL CPE
        will not perform a serial number check during the MMI device
        authentication procedure.
        
        If the value specified by this object and the serial number
        assigned to the DSL CPE do not match, then this DSL CPE can
        not pass the MMI device authentication procedure.
        
        The provider can use this object to prevent a subscriber from
        using 'foreign' equipment, equipment that has been modified,
        or another subscriber's DSL CPE."
    DEFVAL      { "" }
    ::= { cdcpEntityEntry 20 }

cdcpEntityFqdn OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the Fully-Qualified Domain Name (FQDN)
        assigned to this DSL CPE.  A FQDN specifies the full name of
        a system, rather than just its hostname.  For example, 'venera'
        represents a hostname and 'venera.isi.edu' represents an FQDN."
    REFERENCE
        "P. Mockapetris, 'Domain Names - Concepts and Facilities', RFC
        1038, Section 3.1, November 1987."
    ::= { cdcpEntityEntry 21 }

cdcpEntityConfProfile OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (1..32))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value of this object identifies the entity configuration
        profile applied to this DSL CPE.  An entity configuration 
        profile contains configuration information common to a set
        of DSL CPEs served by the proxy element function."
    ::= { cdcpEntityEntry 22 }

-- Entity Configuration Profile Group

cdcpEntityConfProfileTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CdcpEntityConfProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table lists the provisioned entity configuration
        profiles.  This table is a pure base table in the CIB."
    ::= { cdcpEntityConfProfileGroup 1 }

cdcpEntityConfProfileEntry OBJECT-TYPE
    SYNTAX      CdcpEntityConfProfileEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A desription of an entity configuration profile."
    INDEX       { cdcpEntityConfProfileName }
    ::= { cdcpEntityConfProfileTable 1 }

CdcpEntityConfProfileEntry ::= SEQUENCE {
    cdcpEntityConfProfileName       SnmpAdminString,
    cdcpEntityConfRowStatus         RowStatus,
    cdcpEntityConfChangeSet         ChangeSet,
    cdcpEntityConfCountryCode       SnmpAdminString,
    cdcpEntityConfTzOffset          Integer32
}

cdcpEntityConfProfileName OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (1..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object specifies an arbitrary string-value that uniquely
        identifies this entity configuration profile."
    ::= { cdcpEntityConfProfileEntry 1 }

cdcpEntityConfRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the row-status for a conceptual row in
        this table.
    
        A manager can create a conceptual row in this table by setting
        the value of this object to 'createAndWait'.  The proxy element
        function does not support the 'createAndGo' method for
        conceptual row creation.
    
        A manager can delete a conceptual row in this table by setting
        the value of this object to 'destroy'.
    
        A manager must set the value of this object to 'notInService'
        in order to modify the value of object in a conceptual row in
        this table, except when noted by the description of an object.
    
        A manager must activate the conceptual row (i.e., set the value
        of the row-status to 'active') in order for the proxy element
        function to commit changes (i.e., creation or modifications) to
        the committed view of the CIB when the manager releases
        exclusive write-access to the CIB."
    ::= { cdcpEntityConfProfileEntry 2 }

cdcpEntityConfChangeSet OBJECT-TYPE
    SYNTAX      ChangeSet
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies the change set for this conceptual row."
    ::= { cdcpEntityConfProfileEntry 3 }

cdcpEntityConfCountryCode OBJECT-TYPE
    SYNTAX      SnmpAdminString (SIZE (0 | 2))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the Country Code Top-Level Domain
        (CCTLD) assigned to a DSL CPE associated with this
        configuration profile.
        
        If a DSL CPE associated with this configuration profile
        does not have an assigned CCTLD, then the value of this
        object must be a zero-length string."
    REFERENCE
        "International Organization of Standardization (ISO), 'Codes
        for the representation of names for countries and their
        subdivisions--Part 1: Country Codes', ISO 3166-1, 1997."
    DEFVAL      { "" }
    ::= { cdcpEntityConfProfileEntry 4 }

cdcpEntityConfTzOffset OBJECT-TYPE
    SYNTAX      Integer32 (-2147483648..2147483647)
    UNITS       "seconds"
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the timezone of a DSL CPE associated
        with this configuration profile, expressed as an offset (in
        seconds) from GMT."
    DEFVAL      { 0 }
    ::= { cdcpEntityConfProfileEntry 5 }

-- Entity Interface Group

cdcpIfTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF CdcpIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This table lists the provisioned interfaces for each DSL CPE
        served by the proxy element function.  This table has an
        expansion dependent relationship to the cdcpEntityTable.
        When an SNMP entity deletes a conceptual row from the
        cdcpEntityTable, then the proxy element function implicitly
        deletes any conceptual rows from this table that have a
        dependency on the cdcpEntityEntry being deleted."
    ::= { cdcpIfGroup 1 }

cdcpIfEntry OBJECT-TYPE
    SYNTAX      CdcpIfEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A description of a provisioned interface on DSL CPE served by
        the proxy element function."
    INDEX       { cdcpEntityIndex, cdcpIfIndex }
    ::= { cdcpIfTable 1 }

CdcpIfEntry ::= SEQUENCE {
    cdcpIfIndex             InterfaceIndex,
    cdcpIfRowStatus         RowStatus,
    cdcpIfChangeSet         ChangeSet,
    cdcpIfType              IANAifType,
    cdcpIfSublayer          InterfaceIndexOrZero,
    cdcpIfCustomerPremise   TruthValue,
    cdcpIfIpAddress         IpAddress,
    cdcpIfIpSubnet          IpAddress
}

cdcpIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "This object specifies an arbitrary integer-value that uniquely
        identifies this provisioned interface relative to the DSL CPE
        identified by cdcpEntityIndex."
    ::= { cdcpIfEntry 1 }

cdcpIfRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the row-status for a conceptual row in
        this table.
    
        A manager can create a conceptual row in this table by setting
        the value of this object to 'createAndWait'.  The proxy element
        function does not support the 'createAndGo' method for
        conceptual row creation.
    
        A manager can delete a conceptual row in this table by setting
        the value of this object to 'destroy'.
    
        A manager must set the value of this object to 'notInService'
        in order to modify the value of object in a conceptual row in
        this table, except when noted by the description of an object.
    
        A manager must activate the conceptual row (i.e., set the value
        of the row-status to 'active') in order for the proxy element
        function to commit changes (i.e., creation or modifications) to
        the committed view of the CIB when the manager releases
        exclusive write-access to the CIB."
    ::= { cdcpIfEntry 2 }

cdcpIfChangeSet OBJECT-TYPE
    SYNTAX      ChangeSet
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies the change set for this conceptual row."
    ::= { cdcpIfEntry 3 }

cdcpIfType OBJECT-TYPE
    SYNTAX      IANAifType
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies this interface's type.  It uses the same
        textual convention as the ifType object defined by the IF-MIB."
    REFERENCE
        "F. Kastenholz and K. McCloghrie, 'The Interfaces Group MIB
        using SMIv2', RFC 2233, November 1997."
    ::= { cdcpIfEntry 4 }

cdcpIfSublayer OBJECT-TYPE
    SYNTAX      InterfaceIndexOrZero
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the value of the cdcpIfIndex assigned to
        this interface's sublayer interface.  If this interface is a 
        physical interace (i.e., it has no sublayer interface), then
        the value of this object is '0'."
    ::= { cdcpIfEntry 5 }
    
cdcpIfCustomerPremise OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies whether this provisioned interface is
        a customer-premise interface."
    ::= { cdcpIfEntry 6 }

cdcpIfIpAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the value of the IP address assigned to
        this interface.  This value takes precedence over dynamic
        address assignment, such as DHCP or IPCP."
    ::= { cdcpIfEntry 7 }

cdcpIfIpSubnet OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object specifies the vlaue of the IP subnet mask
        corresponding to the IP address assigned to this interface.
        This value takes precedence over dynamic address assignment,
        such as DHCP or IPCP."
    ::= { cdcpIfEntry 8 }

-- MIB Notification Definitions

ciscoDslCpeProvMIBNotificationsPrefix OBJECT IDENTIFIER
    ::= { ciscoDslCpeProvMIB 2 }

ciscoDslCpeProvMIBNotifications OBJECT IDENTIFIER
    ::= { ciscoDslCpeProvMIBNotificationsPrefix 0 }

cdcpEntityError NOTIFICATION-TYPE
    OBJECTS {
        cdcpEntityIndex,
        cdcpEntityMmiStatus
    }
    STATUS      current
    DESCRIPTION
        "The proxy element function originates this notification
        when a defect has occurred with respect to the MMI between
        the proxy element function and a specified DSL CPE."
    ::= { ciscoDslCpeProvMIBNotifications 1 }

cdcpMmiConfChanged NOTIFICATION-TYPE
    STATUS      current
    DESCRIPTION
        "The proxy element function originates this notification
        when an change has occurred to an entity's configuration."
    ::= { ciscoDslCpeProvMIBNotifications 2 }

-- MIB Conformance Statements

ciscoDslCpeProvMIBConformance OBJECT IDENTIFIER
    ::= { ciscoDslCpeProvMIB 3 }

ciscoDslCpeProvMIBCompliances OBJECT IDENTIFIER
    ::= { ciscoDslCpeProvMIBConformance 1 }

ciscoDslCpeProvMIBGroups OBJECT IDENTIFIER
    ::= { ciscoDslCpeProvMIBConformance 2 }

-- Compliance

ciscoDslCpeProvMIBCompliance MODULE-COMPLIANCE
    STATUS current
    DESCRIPTION
        "This compliance statement applies to any SNMP entity supporting
        the proxy element function.  Implementation of this MIB module
        is mandatory for any SNMP entity supporting the proxy element
        function."

    MODULE -- this module
        MANDATORY-GROUPS {
            cdcpBasicGroup,
            cdcpNotificationsGroup
        }
        
    ::= { ciscoDslCpeProvMIBCompliances 1 }

-- Units of Conformance

cdcpBasicGroup OBJECT-GROUP
    OBJECTS {
        cdcpPefSupported,
        cdcpPefNotificationsEnabled,
        cdcpCibSpinLock,
        cdcpCibOwner,
        cdcpCibTimeout,
        cdcpCibChanges,
        cdcpEntityIndexNext,
        cdcpEntityRowStatus,
        cdcpEntityChangeSet,
        cdcpEntityCreator,
        cdcpEntityPhysicalIndex,
        cdcpEntityPortPhysicalIndex,
        cdcpEntityTarget,
        cdcpEntityContextEngineID,
        cdcpEntityContextName,
        cdcpEntityMmiEnable,
        cdcpEntityMmiConfChangeNotify,
        cdcpEntityMmiConfChangeTime,
        cdcpEntityMmiConfChangeReboot,
        cdcpEntityMmiTimeout,
        cdcpEntityMmiConfChanged,
        cdcpEntityMmiConfTimeStamp,
        cdcpEntityMmiState,
        cdcpEntityMmiStatus,
        cdcpEntityAssetVendorType,
        cdcpEntityAssetSerialNumber,
        cdcpEntityFqdn,
        cdcpEntityConfProfile,
        cdcpEntityConfRowStatus,
        cdcpEntityConfChangeSet,
        cdcpEntityConfCountryCode,
        cdcpEntityConfTzOffset,
        cdcpIfRowStatus,
        cdcpIfChangeSet,
        cdcpIfType,
        cdcpIfSublayer,
        cdcpIfCustomerPremise,
        cdcpIfIpAddress,
        cdcpIfIpSubnet
    }
    STATUS      current
    DESCRIPTION
        "A collection of managed objects that define the foundation of
        the CIB."
    ::= { ciscoDslCpeProvMIBGroups 1 }
    
cdcpNotificationsGroup NOTIFICATION-GROUP
    NOTIFICATIONS {
        cdcpEntityError,
        cdcpMmiConfChanged
    }
    STATUS      current
    DESCRIPTION
        "A collection of northbound notifications that proxy element
        function originates for the purpose of signaling a manager."
    ::= { ciscoDslCpeProvMIBGroups 2 }
    
END